The present invention relates to client-server environments; and, more particularly to an improved scalable server architecture that can be used to build very large, application-specific, as well as general, servers for serving a large number of clients efficiently.
For the future, it is envisioned that local networks will be serving from thousands to hundred of thousands of resource-poor clients. These networks might be intra-building, intra-organization or even intra-city. Customizable and nevertheless extremely high performing servers will be required. The low cost and variety of future client devices (e.g., PDAs, laptops, pagers, printers, and specialized appliances) will result in a larger number of client devices per user, such that each office employee may have dozens of client devices. So-called xe2x80x9cthin clientsxe2x80x9d will have fast processors, with little or no disk storage, thereby requiring that most of their data and executables be downloaded from the server. Some typical applications for these clients will involve downloading of very large objects, such as graphics and video.
The existence of cheap client hardware having high-resolution graphics and high-quality audio, together with ubiquitous high-bandwidth networks, will probably lead to applications which make increasing demands on network and server performance. For a scenario with 10,000 users and 100,000 thin clients, requirements to the server complex will approximate the following demands: xe2x80x9chandle 20,000 requests in a second with a data bandwidth of 1 GB""s or higher.xe2x80x9d
Such postulated server-complex performance is about two orders of magnitude higher than that which current servers achieve. Improving current systems by evolution will not be sufficient. What is needed is a new server architecture to achieve the aforementioned goals. The basic requirements of the future architecture will be customizability, performance, scalability and security support.
Traditional servers are designed either to run a variety of applications, with abstractions that lead to poor performance; or run specialized applications efficiently, but without the flexibility to run other applications. In xe2x80x9cServer operating systems,xe2x80x9d by Kaashock, et al, in the xe2x80x9cProceedings of the 1996 SIGOOPS European Workshopsxe2x80x9d (1996), a server operating system environment designed to provide abstractions for building specialized, high-performance servers is detailed. While the detailed server operating system enables improvements in server performance and flexibility, further improvement in performance is necessary without reducing the variety of server systems that can be developed.
It is an objective of the present invention, therefore, to provide a new server architecture.
It is another objective of the invention that the new server architecture be customizable, scalable and secure.
The foregoing and other objectives are realized by the present invention wherein a server complex is provided. The server complex includes at least one hit server with item cache, used to process client read and write operations related to cached items, and at least one miss server, serving as a link to other servers (e.g., web servers, file system servers, and databases) from which non-cached items can be obtained. Hit servers receive requests from clients, respond to clients, and send miss signals and coherency-related information to miss servers. Miss servers respond to these signals and control the hit servers.
Characteristic features of the inventive architecture are, first, to separate the hit server components from the miss server components, and second, to enable using multiple hit server and/or miss server components in a server complex. A further characteristic feature is that a hit server is a general-purpose, generic, component, which is independent of concrete applications and is basically responsible for the performance; while a miss server is a highly-customizable component, which is responsible for flexibility, and is intended to be application specific.
The invented server architecture has four major properties including: performance whereby a server complex achieves exceptionally high throughput rates for local services (i.e., services using items in the local item cache); flexibility, whereby a server complex can support the enforcement of a variety of application-specific policies for item management, authentication, and item consistency; security, whereby a server complex can enable the verification of the source, integrity, and freshness of communications over untrusted links; and, scalability, whereby a server complex is readily expandable by adding server components and implementing customized item consistency policies.